Garbage Collection এর জন্য Command-line Options

Java Technologies - জাভা ভার্চুয়াল মেশিন (Java Virtual Machine) - JVM এর Command-line Options
254

Java Virtual Machine (JVM) এর Garbage Collection একটি গুরুত্বপূর্ণ ফিচার, যা স্বয়ংক্রিয়ভাবে অব্যবহৃত অবজেক্টগুলির মেমরি মুক্ত করে। JVM এর মধ্যে বিভিন্ন ধরণের GC algorithms এবং GC tuning options আছে, যা Garbage Collection এর কার্যক্রম কাস্টমাইজ করতে সাহায্য করে।

Java এর -XX অপশনগুলো ব্যবহার করে আপনি Garbage Collection এর আচরণ কাস্টমাইজ করতে পারেন। নিচে কিছু সাধারণ Garbage Collection এর জন্য কমান্ড-লাইন অপশনসমূহ এবং তাদের ব্যাখ্যা দেয়া হয়েছে।

1. Garbage Collection Algorithm Selection Options:

  1. Serial Garbage Collector:
    • এটি single-threaded GC, যা ছোট অ্যাপ্লিকেশনগুলির জন্য উপযুক্ত। এটি সাধারণত স্ট্যান্ডালোন অ্যাপ্লিকেশন বা একক থ্রেডেড পরিবেশে ব্যবহৃত হয়।
    • Option:

      java -XX:+UseSerialGC -Xms512m -Xmx2g -jar your-application.jar
      
  2. Parallel Garbage Collector:
    • এটি multi-threaded GC যা multiple CPUs ব্যবহার করে। এটি বৃহত্তর অ্যাপ্লিকেশন এবং মাল্টি-থ্রেডেড পরিবেশে ভাল পারফরম্যান্স দেয়।
    • Option:

      java -XX:+UseParallelGC -Xms512m -Xmx2g -XX:+PrintGCDetails -Xloggc:gc.log -jar your-application.jar
      
  3. Concurrent Mark-Sweep (CMS) Garbage Collector:
    • এটি low-latency GC এবং আপনার অ্যাপ্লিকেশনের থ্রেডকে সচল রেখে mark এবং sweep অপারেশন চালাতে সাহায্য করে।
    • Option:

      java -XX:+UseConcMarkSweepGC -Xms512m -Xmx2g -XX:+PrintGCDetails -Xloggc:gc.log -jar your-application.jar
      
  4. G1 Garbage Collector:
    • G1 GC হল একটি আধুনিক এবং কার্যকরী garbage collector যা large heaps এবং low-latency অ্যাপ্লিকেশনের জন্য ডিজাইন করা হয়েছে।
    • এটি garbage collection pauses কমানোর চেষ্টা করে এবং বড় heap সাইজগুলি খুব ভালভাবে পরিচালনা করতে সক্ষম।
    • Option:

      java -XX:+UseG1GC -Xms512m -Xmx2g -XX:+PrintGCDetails -Xloggc:gc.log -jar your-application.jar
      
  5. Z Garbage Collector (ZGC):
    • ZGC হল একটি low-latency garbage collector যা large heaps এবং real-time performance প্রয়োজনীয় অ্যাপ্লিকেশনের জন্য ব্যবহার করা হয়।
    • Option:

      java -XX:+UseZGC -Xms512m -Xmx2g -jar your-application.jar
      
  6. Shenandoah Garbage Collector:
    • Shenandoah GC হল একটি low-latency collector যা large heap ব্যবস্থাপনা এবং concurrent garbage collection এর সুবিধা প্রদান করে।
    • Option:

      java -XX:+UseShenandoahGC -Xms512m -Xmx2g -XX:+PrintGCDetails -Xloggc:gc.log -jar your-application.jar
      

2. Garbage Collection Tuning Options:

  1. Initial and Maximum Heap Size:
    • Heap size কাস্টমাইজ করার জন্য -Xms (initial heap size) এবং -Xmx (maximum heap size) অপশন ব্যবহার করা হয়।
    • Option:

      java -Xms512m -Xmx2g -jar your-application.jar
      
  2. Setting Young Generation Size:
    • -XX:NewSize এবং -XX:MaxNewSize অপশন ব্যবহার করে আপনি young generation এর সাইজ কাস্টমাইজ করতে পারেন।
    • Option:

      java -XX:NewSize=256m -XX:MaxNewSize=1g -jar your-application.jar
      
  3. Garbage Collection Log Settings:
    • GC log গুলি মনিটর করার জন্য আপনাকে -Xloggc অপশন ব্যবহার করতে হবে। এটি GC এর বিস্তারিত লগ তৈরি করবে।
    • Option:

      java -Xms512m -Xmx2g -XX:+PrintGCDetails -Xloggc:gc.log -jar your-application.jar
      
  4. Enable GC Pauses Monitoring:
    • -XX:+PrintGCDetails এবং -XX:+PrintGCDateStamps অপশনগুলি GC এর প্রতি একটি স্ট্যাম্প সহ তথ্য প্রিন্ট করবে, যা আপনাকে GC pause time এবং তারিখ বিশ্লেষণ করতে সাহায্য করবে।
    • Option:

      java -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:gc.log -jar your-application.jar
      
  5. Full GC (Explicit):
    • Full GC trigger করার জন্য -XX:+ExplicitGCInvokesConcurrent অপশন ব্যবহার করা হয়। এটি যখন JVM এর মধ্যে explicit garbage collection trigger হয়, তখন এটি concurrent GC প্রক্রিয়া শুরু করবে।
    • Option:

      java -XX:+ExplicitGCInvokesConcurrent -jar your-application.jar
      
  6. Disable Parallelism:
    • -XX:+DisableExplicitGC ব্যবহার করলে আপনি explicit GC নিষ্ক্রিয় করতে পারবেন, যা ভারী ব্যবহারকারী অ্যাপ্লিকেশনগুলিতে কার্যকরী হতে পারে।
    • Option:

      java -XX:+DisableExplicitGC -jar your-application.jar
      
  7. GC Pause Time Goal:
    • -XX:MaxGCPauseMillis অপশন ব্যবহার করলে GC pause time-কে নির্দিষ্ট মানে সীমাবদ্ধ করা যাবে।
    • Option:

      java -XX:MaxGCPauseMillis=200 -Xms512m -Xmx2g -jar your-application.jar
      

3. Monitoring and Diagnosing GC Behavior:

  1. Heap Dump on OutOfMemoryError:
    • JVM যদি OutOfMemoryError ফেলে, তখন heap dump তৈরি করতে -XX:+HeapDumpOnOutOfMemoryError ব্যবহার করা যায়।
    • Option:

      java -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=heapdump.hprof -jar your-application.jar
      
  2. Verbose GC:
    • Verbose GC অপশনটি জাভার GC সম্পর্কে বিস্তারিত তথ্য প্রদান করে। এটি সাধারণত garbage collection এর সময়, মেমরি ব্যবহার এবং প্রক্রিয়া সম্পর্কে ধারণা দেয়।
    • Option:

      java -verbose:gc -jar your-application.jar
      
  3. Memory Management Logs:
    • GC logs এবং heap dumps এর বিশ্লেষণ করার মাধ্যমে আপনি সহজেই মেমরি ব্যবস্থাপনার সমস্যা চিহ্নিত করতে পারেন।
    • Option:

      java -Xms512m -Xmx2g -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:gc.log -jar your-application.jar
      

Garbage Collection (GC) এবং মেমরি ব্যবস্থাপনা Java অ্যাপ্লিকেশনের পারফরম্যান্সের জন্য অত্যন্ত গুরুত্বপূর্ণ। JVM এর GC algorithms এবং tuning options ব্যবহার করে আপনি আপনার অ্যাপ্লিকেশনের memory management, performance, এবং garbage collection pauses-এর কার্যকারিতা মনিটর এবং অপ্টিমাইজ করতে পারেন। উপরোক্ত কমান্ড-লাইন অপশনগুলো ব্যবহার করে আপনি Java অ্যাপ্লিকেশনটির Garbage Collection কার্যক্রম কাস্টমাইজ করতে পারবেন এবং JVM performance tuning-এ সহায়ক হতে পারে।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...